# -*- coding: utf-8 -*-
# @Time : 2021/5/29 7:03
# @Author : mie
# @File : nuwaconstant.py
# @Software: PyCharm
"""
女娲框架版本（NuWa）常量
"""
import sys


class _const:
    # 自定义异常处理
    class ConstError(PermissionError):
        pass

    class ConstCaseError(ConstError):
        pass

    # 重写 __setattr__() 方法
    def __setattr__(self, name, value):
        if name in self.__dict__:
            raise self.ConstError("Can't change const {0}".format(name))
        if not name.isupper():
            raise self.ConstCaseError(
                "const name {0} is not all uppercase".format(name))
        self.__dict__[name] = value


const = _const()
# 默认的工程目录名称（顶层目录）
const.NUWA_DEFAULT_PROJECT_DIR_NAME_TUPLE = ('Nuwa',)
# 默认的名称
const.NUWA_DEFAULT_FALSE_NAME = 'NuWa'
# 默认的artifactId
# const.NUWA_DEFAULT_ARTIFACTID_PREFIX = 'nuwa'
# 默认的groupId
# const.NUWA_DEFAULT_GROUP_ID = 'com.jhict'
# 默认的包名
const.NUWA_DEFAULT_PACKAGE_NAME = 'com.jhict'
# 默认的类名前缀
const.NUWA_DEFAULT_CLASS_PRE_NAME = 'Nuwa'
# 默认的站点名称
const.NUWA_DEFAULT_SITE_NAME = 'nuwa后台管理系统'
# 默认的项目中文名称
const.NUWA_DEFAULT_CN_PROJECT_NAME = '女娲'
# 默认的项目名称
const.NUWA_DEFAULT_PROJECT_NAME = 'nuwa'
# 需要修改站点名称的资源路径
const.NUWA_SITE_RESOURCES_PATH_TUPLE = ()
# 默认的模块名
const.NUWA_DEFAULT_MODULE_NAME_TUPLE = ('nuwa-basic', 'nuwa-business',
                                         'nuwa-common', 'nuwa-portal', 'nuwa-generator',
                                         'nuwa-system', 'nuwa-xxljob',
                                         'nuwa-xxljob-admin', 'nuwa-ui')
# 将系统加载的模块列表中的 constant 替换为 _const() 实例
sys.modules[__name__] = const